package com.company.project.service;
import com.company.project.core.Result;
import com.company.project.model.Authority;
import com.company.project.model.User;
import com.company.project.core.Service;
import com.company.project.util.PageUtil;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created by CodeGenerator on 2018/10/08.
 */
public interface UserService extends Service<User> {

    //前台登录
    User login(String name, String pwd);

    //根据id查询个人信息
    User selectMessage(Integer id);

    //后台查询角色权限
    List<Map<Object,Object>> enter(Integer id);

    //后台头部
    List<User>  register(String name, String pwd);

    /**
     * 后台查询所有用户和用户的角色
     * @return
     */
    PageUtil<User> selectAllUserRole(Integer pageIndex);
    /**
     * 后台查询所有用户和用户角色的数量
     * @return
     */
    Integer selectUserRoleCount();
    /**
     * 后台修改所有用户和用户角色
     * @param user
     * @return
     */
    Boolean updateUser(User user);
    /**
     * 后台添加用户和用户角色
     * @param user
     * @return
     */
    Boolean insertUser(User user);

    /**
     * 后台删除
     * @return
     */
    Boolean deleteAllUser(Integer id);

    /**
     * 前台修改个人信息
     * @return
     */
    Boolean UPUser (User user);

    /**
     * 查询密码
     * @return
     */
    User selectCode(User user);

    /**
     * 修改密码
     * @return
     */
    Boolean upCode(User user);

    /**
     * 修改用户信息
     * @return
     */
    Boolean UPU(User user);

    /**
     * 前台修改用户状态
     */
    Boolean UPState(User user);

    /**
     * 验证手机号唯一
     */
    Boolean verifyPhone(String phone);

    /**
     * 验证用户名号唯一
     */
    Boolean verifyName(String name);

    //注册
    Boolean addUser(User user);

    /**
     * 后台修改密码
     */
    String adminUP(User user);
    User UserPhone(User user);
}
